home *** CD-ROM | disk | FTP | other *** search
/ Aminet 28 / Aminet 28 (1998)(GTI - Schatztruhe)[!][Dec 1998].iso / Aminet / docs / misc / amigapl.9801.lzh / log / text0072.txt < prev    next >
Encoding:
Text File  |  1998-01-30  |  1.8 KB  |  55 lines

  1. Poniewa¿ nikt nie odpowiedzia³ na moje ww. pytanie, to sam sobie
  2. odpowiem ;). Mo¿e innym siê przyda... A wiec jaki¶ czas temu napisa³em
  3. co¶ takiego:
  4.  
  5. Kto by przypuszcza³, ¿e z tak banaln± funkcj± mog± byæ problemy. A jednak...
  6. Poni¿szy przyk³ad zilustruje o co chodzi.
  7.  
  8. -> Problem z AddPart()
  9. PROC main()
  10.   DEF file[256]:STRING,tmp[256]:STRING
  11.   -> przypadek 1 - z³e dzia³anie
  12.   StrCopy(file,'Dysk:Katalog')
  13.   AddPart(file,'Plik',256)
  14.   StrAdd(file,'-bla')
  15.   PrintF('Wynik 1: \s\n',file)
  16.   -> przypadek 2 - poprawne dzia³anie
  17.   StrCopy(file,'Dysk:Katalog')
  18.   AddPart(file,'Plik',256)
  19.   StrCopy(tmp,file)
  20.   StrAdd(tmp,'-bla')
  21.   PrintF('Wynik 2: \s\n',tmp)
  22. ENDPROC
  23.  
  24. A oto co ten program u mnie wypluwa na konsolê:
  25. 10.Ram Disk:> test
  26. Wynik 1: Dysk:Katalog-bla            ; z³e dzia³anie
  27. Wynik 2: Dysk:Katalog/Plik-bla       ; poprawne dzia³anie
  28.  
  29. Zupe³nie jakby StrAdd() nie zauwa¿a³o, ¿e wcze¶niej co¶ zosta³o
  30. AddPart()'owane do ci±gu.
  31.  
  32. Tak wiêc z przypdaku pierwszego wynika³oby, ¿e AddPart() jest jako¶
  33. niekompatybilne z E stringami. Dlatego pytam:
  34. a) czy ten program u wszystkich daje takie rezultaty (mo¿e to wina jakiej¶
  35.    nak³adki)
  36. b) z czego to wynika
  37.  
  38. No i odpowied¼:
  39. Problem tkwi w tym, ¿e e-stringi nie s± kompatybilne "w dó³" ze zwyk³ymi
  40. stringami. E-string od zwyk³ego ró¿ni siê tym, ¿e ma zapisane informacje
  41. o aktualnej i maksymalnej d³ugo¶ci. Wszystkie funkcje operuj±ce na 
  42. e-stringach musz± utrzymywaæ te informacje zaktualizowane. Niestety
  43. AddPart() tego nie robi i dlatego nastêpuj±ce StrAdd() nie widzi, ¿e co¶
  44. zosta³o dodane.
  45.  
  46. Obej¶æ to mo¿na stosuj±c pomocniczy ci±g tmp, jak zrobi³em to
  47. w powy¿szym przyk³adzie, albo u¿ywaj±c zwyk³ych stringów zamiast 
  48. e-stringów.
  49.  
  50. -- 
  51.  +-Misha/El Condor Software-------------misha@friko2.onet.pl
  52.  | A1200T / 6 MB RAM / 850 MB HDD / 4x CD / USR 33.6 / 1084S
  53.  +-------------------------------Intel inside, idiot outside
  54.  
  55.